From: Georges Basile Stavracas Neto Date: Thu, 30 Jan 2020 14:44:43 +0000 (-0300) Subject: screenShield: Activate dialog when necessary X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~777^2^2~126 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=7851069d9c50c03e286be19851b5da64e6f2cccc;p=gnome-shell.git screenShield: Activate dialog when necessary Activating a dialog is slightly different from opening it; the former is about showing the user authentication widgetry, while the latter is about creating it and pre-allocating the necessary resources. Activate the screen shield dialog when necessary. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/872 --- diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js index 503245a57..519f97f79 100644 --- a/js/gdm/loginDialog.js +++ b/js/gdm/loginDialog.js @@ -1228,13 +1228,18 @@ var LoginDialog = GObject.registerClass({ return GLib.SOURCE_REMOVE; } + activate() { + this._userList.grab_key_focus(); + this.show(); + } + open() { Main.ctrlAltTabManager.addGroup(this, _("Login Window"), 'dialog-password-symbolic', { sortGroup: CtrlAltTab.SortGroup.MIDDLE }); - this._userList.grab_key_focus(); - this.show(); + this.activate(); + this.opacity = 0; Main.pushModal(this, { actionMode: Shell.ActionMode.LOGIN_SCREEN }); diff --git a/js/ui/screenShield.js b/js/ui/screenShield.js index 5908ff547..b2b7c8a95 100644 --- a/js/ui/screenShield.js +++ b/js/ui/screenShield.js @@ -159,8 +159,8 @@ var ScreenShield = class { _liftShield() { if (this._isLocked) { - if (this._ensureUnlockDialog(true /* allowCancel */)) - this._hideLockScreen(true /* animate */); + this._ensureUnlockDialog(true /* allowCancel */); + this._dialog.activate(); } else { this.deactivate(true /* animate */); } @@ -437,6 +437,7 @@ var ScreenShield = class { } this._dialog.allowCancel = allowCancel; + this._dialog.grab_key_focus(); return true; } diff --git a/js/ui/unlockDialog.js b/js/ui/unlockDialog.js index 7b9b0e723..f158d057c 100644 --- a/js/ui/unlockDialog.js +++ b/js/ui/unlockDialog.js @@ -527,6 +527,10 @@ var UnlockDialog = GObject.registerClass({ return true; } + activate() { + this._showPrompt(); + } + popModal(timestamp) { if (this._isModal) { Main.popModal(this, timestamp);